home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / linux / inet_diag.h < prev    next >
C/C++ Source or Header  |  2009-10-16  |  2KB  |  125 lines

  1. #ifndef _INET_DIAG_H_
  2. #define _INET_DIAG_H_ 1
  3.  
  4. #include <linux/types.h>
  5.  
  6. /* Just some random number */
  7. #define TCPDIAG_GETSOCK 18
  8. #define DCCPDIAG_GETSOCK 19
  9.  
  10. #define INET_DIAG_GETSOCK_MAX 24
  11.  
  12. /* Socket identity */
  13. struct inet_diag_sockid {
  14.     __be16    idiag_sport;
  15.     __be16    idiag_dport;
  16.     __be32    idiag_src[4];
  17.     __be32    idiag_dst[4];
  18.     __u32    idiag_if;
  19.     __u32    idiag_cookie[2];
  20. #define INET_DIAG_NOCOOKIE (~0U)
  21. };
  22.  
  23. /* Request structure */
  24.  
  25. struct inet_diag_req {
  26.     __u8    idiag_family;        /* Family of addresses. */
  27.     __u8    idiag_src_len;
  28.     __u8    idiag_dst_len;
  29.     __u8    idiag_ext;        /* Query extended information */
  30.  
  31.     struct inet_diag_sockid id;
  32.  
  33.     __u32    idiag_states;        /* States to dump */
  34.     __u32    idiag_dbs;        /* Tables to dump (NI) */
  35. };
  36.  
  37. enum {
  38.     INET_DIAG_REQ_NONE,
  39.     INET_DIAG_REQ_BYTECODE,
  40. };
  41.  
  42. #define INET_DIAG_REQ_MAX INET_DIAG_REQ_BYTECODE
  43.  
  44. /* Bytecode is sequence of 4 byte commands followed by variable arguments.
  45.  * All the commands identified by "code" are conditional jumps forward:
  46.  * to offset cc+"yes" or to offset cc+"no". "yes" is supposed to be
  47.  * length of the command and its arguments.
  48.  */
  49.  
  50. struct inet_diag_bc_op {
  51.     unsigned char    code;
  52.     unsigned char    yes;
  53.     unsigned short    no;
  54. };
  55.  
  56. enum {
  57.     INET_DIAG_BC_NOP,
  58.     INET_DIAG_BC_JMP,
  59.     INET_DIAG_BC_S_GE,
  60.     INET_DIAG_BC_S_LE,
  61.     INET_DIAG_BC_D_GE,
  62.     INET_DIAG_BC_D_LE,
  63.     INET_DIAG_BC_AUTO,
  64.     INET_DIAG_BC_S_COND,
  65.     INET_DIAG_BC_D_COND,
  66. };
  67.  
  68. struct inet_diag_hostcond {
  69.     __u8    family;
  70.     __u8    prefix_len;
  71.     int    port;
  72.     __be32    addr[0];
  73. };
  74.  
  75. /* Base info structure. It contains socket identity (addrs/ports/cookie)
  76.  * and, alas, the information shown by netstat. */
  77. struct inet_diag_msg {
  78.     __u8    idiag_family;
  79.     __u8    idiag_state;
  80.     __u8    idiag_timer;
  81.     __u8    idiag_retrans;
  82.  
  83.     struct inet_diag_sockid id;
  84.  
  85.     __u32    idiag_expires;
  86.     __u32    idiag_rqueue;
  87.     __u32    idiag_wqueue;
  88.     __u32    idiag_uid;
  89.     __u32    idiag_inode;
  90. };
  91.  
  92. /* Extensions */
  93.  
  94. enum {
  95.     INET_DIAG_NONE,
  96.     INET_DIAG_MEMINFO,
  97.     INET_DIAG_INFO,
  98.     INET_DIAG_VEGASINFO,
  99.     INET_DIAG_CONG,
  100. };
  101.  
  102. #define INET_DIAG_MAX INET_DIAG_CONG
  103.  
  104.  
  105. /* INET_DIAG_MEM */
  106.  
  107. struct inet_diag_meminfo {
  108.     __u32    idiag_rmem;
  109.     __u32    idiag_wmem;
  110.     __u32    idiag_fmem;
  111.     __u32    idiag_tmem;
  112. };
  113.  
  114. /* INET_DIAG_VEGASINFO */
  115.  
  116. struct tcpvegas_info {
  117.     __u32    tcpv_enabled;
  118.     __u32    tcpv_rttcnt;
  119.     __u32    tcpv_rtt;
  120.     __u32    tcpv_minrtt;
  121. };
  122.  
  123.  
  124. #endif /* _INET_DIAG_H_ */
  125.